package com.example.springboot09.适配器模式;

/**
 * @ClassName 适配器模式
 * @Description TODO
 * @Author tianqinglong
 * @Date 17:04 2022/7/25
 * @Version 1.0
 **/
public class 适配器模式 {
}

//要被适配的类 ： 网线
class Adaptee {
    public void request(){
        System.out.println("连接网线上网");
    }
}
//接口转换器的抽象实现
interface NetToUsb {
    //作用： 处理请求 网线=》usb
     void handleRequest();
}
//真正的适配器
class Adapter extends Adaptee implements NetToUsb{
    @Override
    public void handleRequest() {
        super.request();//可以上网了
    }
}

class Computer {
    //我们的电脑需要连接上转接器才可以上网
    public void net(NetToUsb netToUsb) {
        //上网的具体实现~ 找一个转接头
        netToUsb.handleRequest();
    }

    public static void main(String[] args) {
        Computer computer = new Computer();
//        Adapter adapter = new Adapter();
//        computer.net(adapter);
        Adaptee adaptee = new Adaptee();
        Adapter2 adapter2=new Adapter2(adaptee);
        computer.net(adapter2);
    }
    }
class Adapter2  implements NetToUsb{
    private Adaptee adaptee;

    public Adapter2(Adaptee adaptee) {
        this.adaptee = adaptee;
    }

    @Override
    public void handleRequest() {
        adaptee.request();
    }
}
